#include "dataMapa.h"
#include<stdexcept>

dataMapa::dataMapa(){
    nombre=new char[1];
    nombre[0] ='\0';
    territorios = new Collection();
}

dataMapa::dataMapa(char* nom){
    nombre=nom;
    territorios = new Collection();

}

/*
dataTerritorio* dataMapa::buscarEnMapa(string *territorio){
    int largo = this->territorios->size();
    int i=0;
    bool encontre = false;
    dataTerritorio *dt;
    String nomDt;

    while((i<largo) && (!encontre)){
        dt = (dataTerritorio*)this->territorios->operator [](i);
        nomDt = dt->getNombre();
        if ( nomDt == territorio->getElemento() ){
            encontre = true;
        }
        i++;
    }
    if ((i == largo) && (!encontre)){
        throw out_of_range("El territorio no pertence al mapa\n");
    }
    return dt;

}
*/
void dataMapa::agregarTerritorio(dataTerritorio* ter){
    this->territorios->add(ter);
}

char* dataMapa::getNombre()const{
	return nombre;
}

ICollection* dataMapa::getTerritorios()const{
    return this->territorios;
}

dataMapa::~dataMapa(){
  territorios->~ICollection();
}

dataMapa& dataMapa::operator=(const dataMapa& dmapa){
  nombre=dmapa.getNombre();
 // territorios = dmapa.getTerritorios();
  return *this;
}
/*
ostream & operator<<(ostream& o, const dataMapa& dm){
    Arreglo* t;
    o<<"Nombre del mapa: "<< dm.getNombre()<<"\n"<<"\n";
    t=dm.getTerritorios();
    dataTerritorio* dataT;
    int l=t->size();
    if(l>0){
        cout<<"Territorios: \n";
        for(int i=0;i<l;i++){
            dataT=(dataTerritorio*)t->operator [](i);
            cout<<*dataT;
            cout<<"\n";
        }
    }
    else{
        cout<<"No tiene territorios. \n";
    }

    return o;
}
*/